<?php

namespace App\Http\Controllers\Api\Teacher;

use App\Models\VirtualClassroom;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class VirtualScoreController extends Controller
{
    /**
     * 虚拟教室成绩列表（支持多条件搜索）
     * GET /api/teacher/virtual-scores
     */
    public function index(Request $request)
    {
        // 请求参数
        $studentName = $request->input('student_name'); // 学生姓名搜索
        $studentPhone = $request->input('student_phone'); // 学生电话搜索
        $status = $request->input('status'); // 状态筛选（0未开始/1进行中/2已完成）
        $projectName = $request->input('project_name'); // 项目名称搜索
        $page = $request->input('page', 1);
        $pageSize = $request->input('page_size', 10);

        // 基础查询（关联学生表获取姓名和电话）
        $query = VirtualClassroom::with('student');

        // 搜索条件
        // 1. 学生姓名筛选（关联表查询）
        if (!empty($studentName)) {
            $query->whereHas('student', function ($q) use ($studentName) {
                $q->where('name', 'like', "%{$studentName}%");
            });
        }

        // 2. 学生电话筛选（关联表查询）
        if (!empty($studentPhone)) {
            $query->whereHas('student', function ($q) use ($studentPhone) {
                $q->where('phone', 'like', "%{$studentPhone}%");
            });
        }

        // 3. 状态筛选
        if (isset($status)) {
            $query->where('status', $status);
        }

        // 4. 项目名称筛选
        if (!empty($projectName)) {
            $query->where('project_name', 'like', "%{$projectName}%");
        }

        // 分页查询
        $scores = $query->paginate($pageSize, ['*'], 'page', $page);

        return $this->paginated($scores->items(), $scores);
    }
}